Skip to content

Add GXVirtualPathCasingModule to enforce canonical application path casing#1283

Merged
claudiamurialdo merged 2 commits into
masterfrom
feature/canonical-app-casing-module
May 22, 2026
Merged

Add GXVirtualPathCasingModule to enforce canonical application path casing#1283
claudiamurialdo merged 2 commits into
masterfrom
feature/canonical-app-casing-module

Conversation

@claudiamurialdo

Copy link
Copy Markdown
Collaborator

HttpModule that redirects requests whose virtual path casing differs from the IIS-configured application path to the canonical casing. The canonical path is taken from AppDomainAppVirtualPath, so it works for any app without hardcoding the name.

Issue:208692

…casing

HttpModule that redirects requests whose virtual path casing differs from
the IIS-configured application path to the canonical casing. The canonical
path is taken from AppDomainAppVirtualPath, so it works for any app without
hardcoding the name.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@claudiamurialdo claudiamurialdo temporarily deployed to kafka-integration-tests May 20, 2026 16:40 — with GitHub Actions Inactive
@claudiamurialdo claudiamurialdo temporarily deployed to external-storage-tests May 20, 2026 16:40 — with GitHub Actions Inactive
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@claudiamurialdo claudiamurialdo temporarily deployed to external-storage-tests May 20, 2026 16:43 — with GitHub Actions Inactive
@claudiamurialdo claudiamurialdo temporarily deployed to kafka-integration-tests May 20, 2026 16:43 — with GitHub Actions Inactive
@genexusbot

Copy link
Copy Markdown
Contributor
Cherry pick to beta success

@claudiamurialdo claudiamurialdo changed the title Add GXCanonicalAppCasingModule to enforce canonical application path casing Add GXVirtualPathCasingModule to enforce canonical application path casing May 20, 2026
@claudiamurialdo claudiamurialdo merged commit 21dde5b into master May 22, 2026
10 checks passed
@claudiamurialdo claudiamurialdo deleted the feature/canonical-app-casing-module branch May 22, 2026 20:45
claudiamurialdo added a commit that referenced this pull request May 22, 2026
…asing (#1283)

* Add GXCanonicalAppCasingModule to enforce canonical application path casing

HttpModule that redirects requests whose virtual path casing differs from
the IIS-configured application path to the canonical casing. The canonical
path is taken from AppDomainAppVirtualPath, so it works for any app without
hardcoding the name.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* Rename GXCanonicalAppCasingModule to GXVirtualPathCasingModule

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
(cherry picked from commit 21dde5b)
claudiamurialdo added a commit that referenced this pull request May 25, 2026
…asing (#1283)

* Add GXCanonicalAppCasingModule to enforce canonical application path casing

HttpModule that redirects requests whose virtual path casing differs from
the IIS-configured application path to the canonical casing. The canonical
path is taken from AppDomainAppVirtualPath, so it works for any app without
hardcoding the name.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* Rename GXCanonicalAppCasingModule to GXVirtualPathCasingModule

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
(cherry picked from commit 21dde5b)
claudiamurialdo added a commit that referenced this pull request Jun 3, 2026
… relative (#1287)

Backport of the master change (refinement of #1283): only canonicalize
idempotent GET/HEAD navigations, skip service endpoints (.svc/.asmx//rest/)
which resolve case-insensitively, and use a 302 (Response.Redirect +
CompleteRequest) instead of a 301 RedirectPermanent. Location stays relative.

A 3xx on a POST downgraded it to GET and dropped the body, breaking .svc/REST
calls; 301 was also cached permanently by the browser.

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
claudiamurialdo added a commit that referenced this pull request Jun 3, 2026
… relative (#1288)

Backport of the master change (refinement of #1283): only canonicalize
idempotent GET/HEAD navigations, skip service endpoints (.svc/.asmx//rest/)
which resolve case-insensitively, and use a 302 (Response.Redirect +
CompleteRequest) instead of a 301 RedirectPermanent. Location stays relative.

A 3xx on a POST downgraded it to GET and dropped the body, breaking .svc/REST
calls; 301 was also cached permanently by the browser.

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants